// 推荐相关 Mock 数据

import type { Recommendation, GetRecommendationsResponse, ApiResponse } from '@/types/api';

// 模拟延迟
const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));

// 模拟推荐数据
const mockRecommendations: Recommendation[] = [
  {
    id: 'rec_001',
    title: '健康作息建议',
    description: '根据您的对话记录，建议调整作息时间，保证每天7-8小时睡眠',
    category: 'lifestyle',
    icon: '🌙',
    action: '告诉我更多关于健康作息的建议'
  },
  {
    id: 'rec_002',
    title: '营养补充方案',
    description: '建议增加维生素B族的摄入，可以改善精神状态',
    category: 'nutrition',
    icon: '🥗',
    action: '如何科学补充维生素B族？'
  },
  {
    id: 'rec_003',
    title: '运动健康计划',
    description: '每天30分钟适度运动可以有效改善健康状况',
    category: 'exercise',
    icon: '🏃',
    action: '推荐适合我的运动方案'
  },
  {
    id: 'rec_004',
    title: '压力管理技巧',
    description: '学习正确的压力管理方法，保持身心健康',
    category: 'mental',
    icon: '🧘',
    action: '如何有效管理工作压力？'
  },
  {
    id: 'rec_005',
    title: '饮水提醒',
    description: '每天保证充足的水分摄入，建议每天8杯水',
    category: 'lifestyle',
    icon: '💧',
    action: '正确的饮水习惯是什么？'
  },
  {
    id: 'rec_006',
    title: '眼部健康护理',
    description: '长时间用眼需要注意休息，避免眼部疲劳',
    category: 'health',
    icon: '👁️',
    action: '如何保护眼睛健康？'
  }
];

/**
 * Mock 获取推荐列表接口
 */
export const mockGetRecommendations = async (): Promise<ApiResponse<GetRecommendationsResponse>> => {
  await delay(500);

  // 随机返回3-4个推荐
  const count = 3 + Math.floor(Math.random() * 2);
  const shuffled = [...mockRecommendations].sort(() => Math.random() - 0.5);
  const recommendations = shuffled.slice(0, count);

  return {
    code: 200,
    data: { recommendations },
    message: '获取成功'
  };
};

/**
 * Mock 推荐反馈接口
 */
export const mockRecommendationFeedback = async (
  recommendationId: string,
  helpful: boolean
): Promise<ApiResponse<null>> => {
  await delay(300);

  return {
    code: 200,
    data: null,
    message: '反馈成功'
  };
};